/*
 * XmlAttribute.h
 *
 * Modela un atributo asociado a un tag.
 */

#ifndef XMLATTRIBUTE_H_
#define XMLATTRIBUTE_H_

#include <iostream>
#include <fstream>
#include <list>
#include <string>
#include <map>

using namespace std;

class XmlAttribute {
public:
	// Constructores:
	XmlAttribute(string name);
	XmlAttribute(string name, string value);
	~XmlAttribute();

	/*
	 * Retorna el nombre del attributo.
	 */
	string * getName(void);

	/*
	 * setea el nombre del attributo.
	 */
	void setName(string name);

	/*
	 * Retorna el valor del attributo.
	 */
	string * getValue(void);

	/*
	 * Retorna el valor del attributo.
	 */
	void setValue(string value);

	/*
	 * Retorna el numero de linea en el cual se encuentra el attributo dentro del file.
	 */
	int getLine(void);

	/*
	 * setea el numero de linea en el cual se encuentra el attributo dentro del file.
	 */
	void setLine(int line);

	/*
	 * Retorna el numero de columna en el cual se encuentra el attributo dentro del file.
	 */
	int getColumn(void);

	/*
	 * setea el numero de columna en el cual se encuentra el attributo dentro del file.
	 */
	void setColumn(int column);

	/*
	 * Retorna un string con informacion del objeto, para su posterior impresion o uso similar.
	 */
	string & toString(void);

private:
	string name;
	string value;
	int line;
	int column;
};

#endif /* XMLATTRIBUTE_H_ */
